<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    /*
      T1  在控制台中循环输出 0 0.2 0.4 0.6 0.8 1
    */
    /* for (var i = 0; i <= 10; i += 2) {
      console.log(i / 10);
    } */

    /*
      T2  break和continue有什么区别
    */
    /* 
     答：
       break语句会直接终止整个循环。
       而continue语句只会会跳过本次循环，继续执行下次循环
    */

    /*
        T3  循环输出 1-100 里奇数
     */

    /* for (var i = 1; i <= 100; i += 2) {
      console.log("1~100的奇数有" + i);
    } */

    /*
        T4  有一座桥，当你身上所拥有的钱大于 30000 时，每过一次桥则需要支付 3000 元。当你身上的钱小于或等于 30000 时，每过一次桥则需要支付你身上 10%的钱。已知有一个人身上有 33000 元，问此人能过这座桥多少次之后，身上的钱会少于 100 块?
    */

    /* var totalMoney = 33000;
    var count = 0;
    while (totalMoney > 100) {
      if (totalMoney > 30000) {
        totalMoney -= 3000;
        count++;
      }
      if (totalMoney <= 30000) {
        totalMoney -= totalMoney * 0.1;
        count++;
      }
    }
    console.log("此人过这座桥" + count + "次之后,身上的钱会少于 100 块");
 */


    /*
        T5  小明去存 1000 钱，每天会产生 1%的利息，求问，30 天后，小明可以拿回多少钱
    */
    // 总金 = 本金 + 利息

    /* var totalAmount = 1000;
    for (var i = 0; i < 30; i++) {
      totalAmount += totalAmount * 0.01;
    }
    console.log("30天后的总金是：" + totalAmount); */


    /*
        (提高)求水仙花数：水仙花数是这样一个三位数,它的每个数位的数字的立方和等于它本身。
    */
    // 1000以内的水仙花数
    /*  for (var i = 100; i < 1000; i++) {
       // 百位
       var num1 = Math.pow(parseInt(i / 100),3);
       // 十位
       var num2 = Math.pow(parseInt((i / 10) % 10),3);
       // var num2 = Math.pow(parseInt((i-(num1*100)) /10),3);
 
       // 个位
       var num3 = Math.pow(parseInt(i % 10),3);
       var sum = (num1+num2+num3);
       if (sum === i) {
         console.log("1000以内的水仙花数:" + i);
       }
     } */

    // 方法二(csdn的ChitGPT生成)
    /* for (var i = 100; i < 1000; i++) {
      var sum = 0;  // 用于存储各位数字的立方和  
      var num = i;  // 用于循环中获取各位数字  
      while (num > 0) {
        var digit = num % 10;
        sum += Math.pow(digit, 3);
        num = Math.floor(num / 10);
      }   
      if (sum === i) { console.log(i + " 是一个水仙花数"); }
    } */
    //11110

    /*
        (提高)
        猜数字游戏
        规则：
        1. 电脑随机生成一个 0~99 之间的数字；
        2. 玩家有 7 次猜测的机会；
        3. 玩家猜测一个数字, 输入到程序中；
        4. 电脑根据输入的数字打印: 猜大了/猜小了/猜对了的情况；
        5. 猜对了, 那么游戏结束，显示恭喜您；
        6. 7 次机会用完打印: 您的次数用完了, 您失败了；
        */

    // 产生0~99的整数随机数
    const radomNum = Math.floor(Math.random() * 100);
    // console.log(radomNum);
    //  限定次数
    var count = 7;
    while (count > 0) {
      // 用户输入
      var num = Number(prompt("请输入一个0~99之间的整数"));
      // 判断输入的数据是否符合要求
      if (num > -1 && num < 100 && num !== 0 && Number.isInteger(num)) {
        // 猜对了
        if (radomNum === num) {
          alert("恭喜你，猜对了！");
          alert("游戏结束！");
          break;
        } else if (num < radomNum) {
          count--;
          alert("你猜小了，你还剩" + count + "次机会");
        } else {
          count--;
          alert("你猜大了，你还剩" + count + "次机会");
        }
        // 达到规定次数，没猜对，结束循环
        if (count === 0) {
          alert("你的次数用完，你失败了~~");
          break;
        }
      } else {
        alert("你的输入有误，请重新输入");
      }
    }

  </script>
</body>

</html>